<html>
<style>
  table, th, td {
     border: 1px solid rgb(200,200,200);
     border-collapse: collapse;
     }
  table {
     table-layout: fixed;
     width: 1900px;
     }
  td {
     overflow-x: auto;
     }
  th, td {
    padding: 15px;
    text-align: left;
    vertical-align: middle;
    }
  .comments {
    color: #292;
    }
  .source-code {
    color: #22F;
    }
  .interface-parent {
    color: #AAA;
    }
  .interface-name {
    color: #000;
    }
  .check-mark {
    text-align: center;
    }
</style>
<body>
<br>

<h1>DJI Mobile SDK 4.15 to 4.15.1 Differences</h1>

<br>

<h2>API changes</h2>

<table class="diff-table"><tr valign="top"><td width=15%><font color="#000">4.15 Parent and Name</font></td><td width=15%><font color="#000">4.15 Code</font></td><td width=15%><font color="#000">4.15.1 Parent and Name</font></td><td width=15%><font color="#000">4.15.1 Code</font></td><td width=3%><font color="#000">Parent</font></td><td width=3%><font color="#000">Name</font></td><td width=3%><font color="#000">Type</font></td><td width=3%><font color="#000">Param</font></td><td width=3%><font color="#000">Return</font></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_INTERRUPT_REASON_AVOID_HEIGHT_LIMIT
            = new DJIWaypointV2Error("Waypoint mission was interrupted due to height limit", -15)</span></td><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_INTERRUPT_REASON_AVOID_HEIGHT_LIMIT
            = new DJIWaypointV2Error("Waypoint mission was interrupted due to height limit.", -15)</span></td><td width=3%></td><td width=3%></td><td width=3%></td><td width=3%><div class="check-mark">X</div></td><td width=3%></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_COUNT_OVER_RANGE
            = new DJIWaypointV2Error("The mission waypoint count is larger than max waypoint count of 65535..", -2001)</span></td><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_COUNT_OVER_RANGE
            = new DJIWaypointV2Error("The mission waypoint count is larger than max waypoint count of 65535.", -2001)</span></td><td width=3%></td><td width=3%></td><td width=3%></td><td width=3%><div class="check-mark">X</div></td><td width=3%></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_ALREADY_INTERRUPTED
            = new DJIWaypointV2Error("The mission already was interrupted.", -4012)</span></td><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_ALREADY_INTERRUPTED
            = new DJIWaypointV2Error("The mission is already interrupted.", -4012)</span></td><td width=3%></td><td width=3%></td><td width=3%></td><td width=3%><div class="check-mark">X</div></td><td width=3%></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_INTERRUPT_REASON_AVOID_RADIUS_LIMIT
            = new DJIWaypointV2Error("Waypoint mission was interrupted due to reaching radius limit", -14)</span></td><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_INTERRUPT_REASON_AVOID_RADIUS_LIMIT
            = new DJIWaypointV2Error("Waypoint mission was interrupted due to reaching radius limit.", -14)</span></td><td width=3%></td><td width=3%></td><td width=3%></td><td width=3%><div class="check-mark">X</div></td><td width=3%></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_MAX_FLIGHT_SPEED_INVALID
            = new DJIWaypointV2Error("The mission max flight speed greaterthan 15m/s or less than 2m/s.", -2004)</span></td><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_MAX_FLIGHT_SPEED_INVALID
            = new DJIWaypointV2Error("The mission max flight speed is greater than 15m/s or less than 2m/s.", -2004)</span></td><td width=3%></td><td width=3%></td><td width=3%></td><td width=3%><div class="check-mark">X</div></td><td width=3%></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_INTERRUPT_REASON_AVOID_USER_REQ_BREAK
            = new DJIWaypointV2Error("Waypoint mission was interrupted due to interrupted by user", -17)</span></td><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_INTERRUPT_REASON_AVOID_USER_REQ_BREAK
            = new DJIWaypointV2Error("Waypoint mission was interrupted due to interrupted by user.", -17)</span></td><td width=3%></td><td width=3%></td><td width=3%></td><td width=3%><div class="check-mark">X</div></td><td width=3%></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error AIRCRAFT_FLYING_STATUS_ERROR
            = new DJIWaypointV2Error("The aircraft flying stauts bad.", -5001)</span></td><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error AIRCRAFT_FLYING_STATUS_ERROR
            = new DJIWaypointV2Error("The aircraft flying status is bad.", -5001)</span></td><td width=3%></td><td width=3%></td><td width=3%></td><td width=3%><div class="check-mark">X</div></td><td width=3%></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_MAX_FLIGHT_SPEED_OVER_MISSION_MAX_FLIGHT_SPEED
            = new DJIWaypointV2Error("The upload waypoints have onewaypoint max flight speed greaterthan mission max flight speed.", -2016)</span></td><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_MAX_FLIGHT_SPEED_OVER_MISSION_MAX_FLIGHT_SPEED
            = new DJIWaypointV2Error("There is one uploaded waypoint has speed which is greater than mission's max speed.", -2016)</span></td><td width=3%></td><td width=3%></td><td width=3%></td><td width=3%><div class="check-mark">X</div></td><td width=3%></td></tr></table><br>

<h2>APIs removed from 4.15</h2>

<table class="diff-table"><tr valign="top"><td width=15%><font color="#000">Parent and Name</font></td><td width=15%><font color="#000">Code</font></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error ACTUATOR_AND_TRIGGER_DO_NOT_MATCH
            = new DJIWaypointV2Error("The action actuator and the trigger type do not match.", -12)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error UNKNOWN
            = new DJIWaypointV2Error("UnKnown", 10010)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.mission.waypointv2.Action.InterruptRecoverActionType.</span><span class="interface-name">GoBackToCurrentProjectionPoint</span></td><td width=15%><span class="source-code">    GoBackToCurrentProjectionPoint(1)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.mission.waypointv2.Action.InterruptRecoverActionType.</span><span class="interface-name">GoBackToNextProjectionPoint</span></td><td width=15%><span class="source-code">    GoBackToNextProjectionPoint(2)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.mission.waypointv2.Action.InterruptRecoverActionType.</span><span class="interface-name">GoBackToNextNextProjectionPoint</span></td><td width=15%><span class="source-code">    GoBackToNextNextProjectionPoint(3)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.mission.waypointv2.WaypointV2HeadingMode.</span><span class="interface-name">GIMBAL_YAW_FOLLOW</span></td><td width=15%><span class="source-code">        GIMBAL_YAW_FOLLOW(5)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_INTERRUPT_REASON_AVOID_RTK_UNHEALTHY
            = new DJIWaypointV2Error("Waypoint mission was interrupted due to weak RTK signal", -16)</span></td></tr></table><br>

<h2>APIs added to 4.15.1</h2>

<table class="diff-table"><tr valign="top"><td width=15%><font color="#000">Parent and Name</font></td><td width=15%><font color="#000">Code</font></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.media.MediaFile.</span><span class="interface-name">NewFileInfoCallback</span></td><td width=15%><span class="source-code">interface NewFileInfoCallback </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.media.MediaFile.NewFileInfoCallback.</span><span class="interface-name">onNewFileInfo</span></td><td width=15%><span class="source-code">        void onNewFileInfo(@NonNull MediaFileInfo mediaFileInfo)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.camera.Camera.</span><span class="interface-name">setNewGeneratedMediaFileInfoCallback</span></td><td width=15%><span class="source-code">void setNewGeneratedMediaFileInfoCallback(@Nullable MediaFile.NewFileInfoCallback callback)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.</span><span class="interface-name">PipelineError</span></td><td width=15%><span class="source-code">class PipelineError extends DJIError </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.PipelineError.</span><span class="interface-name">BUSY_OPERATION</span></td><td width=15%><span class="source-code">static final PipelineError BUSY_OPERATION =
            new PipelineError("DJIPipelineError: Busy now, please try again later.", -10009)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.PipelineError.</span><span class="interface-name">CRC_CHECK_FAILED</span></td><td width=15%><span class="source-code">static final PipelineError CRC_CHECK_FAILED =
            new PipelineError("DJIPipelineError: CRC check failed.", -10002)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.PipelineError.</span><span class="interface-name">CLOSED</span></td><td width=15%><span class="source-code">static final PipelineError CLOSED =
            new PipelineError("DJIPipelineError: Connection closed, no need to call again.", -10011)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.PipelineError.</span><span class="interface-name">CLOSING</span></td><td width=15%><span class="source-code">static final PipelineError CLOSING =
            new PipelineError("DJIPipelineError: Connection closing, no need to call again.", -10014)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.PipelineError.</span><span class="interface-name">CONNECTING</span></td><td width=15%><span class="source-code">static final PipelineError CONNECTING =
            new PipelineError("DJIPipelineError: Connecting, no need to call again.", -10012)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.PipelineError.</span><span class="interface-name">CONNECTION_REFUSED</span></td><td width=15%><span class="source-code">static final PipelineError CONNECTION_REFUSED =
            new PipelineError("DJIPipelineError: The target device refuses to connect.", -10017)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.PipelineError.</span><span class="interface-name">ID_OCCUPIED</span></td><td width=15%><span class="source-code">static final PipelineError ID_OCCUPIED =
            new PipelineError("DJIPipelineError: Duplicated binding is not allowed. Please try to bind with a new ID.", -10018)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.PipelineError.</span><span class="interface-name">INTERNAL_STATUS_ERROR</span></td><td width=15%><span class="source-code">static final PipelineError INTERNAL_STATUS_ERROR =
            new PipelineError("DJIPipelineError: Internal status error. Please recreate the Pipeline object.", -10019)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.PipelineError.</span><span class="interface-name">INVALID_PARAMETERS</span></td><td width=15%><span class="source-code">static final PipelineError INVALID_PARAMETERS =
            new PipelineError("DJIPipelineError: Invalid Parameters.", -10003)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.PipelineError.</span><span class="interface-name">LINK_BREAK</span></td><td width=15%><span class="source-code">static final PipelineError LINK_BREAK =
            new PipelineError("DJIPipelineError: Link broken, please check the connection with the aircraft.", -10016)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.PipelineError.</span><span class="interface-name">NOT_CONNECTED</span></td><td width=15%><span class="source-code">static final PipelineError NOT_CONNECTED =
            new PipelineError("DJIPipelineError: Connection has not established.", -10015)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.PipelineError.</span><span class="interface-name">NOT_ENOUGH_MEMORY</span></td><td width=15%><span class="source-code">static final PipelineError NOT_ENOUGH_MEMORY =
            new PipelineError("DJIPipelineError: Not enough memory.", -10004)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.PipelineError.</span><span class="interface-name">NOT_READY</span></td><td width=15%><span class="source-code">static final PipelineError NOT_READY =
            new PipelineError("DJIPipelineError: Usually occurs when allocating the local pipeline ID.", -10005)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.PipelineError.</span><span class="interface-name">RECEIVE_FAILED</span></td><td width=15%><span class="source-code">static final PipelineError RECEIVE_FAILED =
            new PipelineError("DJIPipelineError: Receiving data exceptions.", -10007)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.PipelineError.</span><span class="interface-name">RESOURCES_NOT_AVAILABLE</span></td><td width=15%><span class="source-code">static final PipelineError RESOURCES_NOT_AVAILABLE =
            new PipelineError("DJIPipelineError: Local resources are ineffective and unavailable. Please recreate.", -10013)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.PipelineError.</span><span class="interface-name">SEND_FAILED</span></td><td width=15%><span class="source-code">static final PipelineError SEND_FAILED =
            new PipelineError("DJIPipelineError: Send data exception.", -10006)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.PipelineError.</span><span class="interface-name">TIMEOUT</span></td><td width=15%><span class="source-code">static final PipelineError TIMEOUT =
            new PipelineError("DJIPipelineError: Timeout error.", -10008)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.PipelineError.</span><span class="interface-name">UNACCEPTABLE_OPERATIONS</span></td><td width=15%><span class="source-code">static final PipelineError UNACCEPTABLE_OPERATIONS =
            new PipelineError("DJIPipelineError: TResource occupied, please select another ID connection.", -10010)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.PipelineError.</span><span class="interface-name">UNKNOWN</span></td><td width=15%><span class="source-code">static final PipelineError UNKNOWN =
            new PipelineError("DJIPipelineError: Unknown.", -10001)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.PipelineError.</span><span class="interface-name">getDJIError</span></td><td width=15%><span class="source-code">static PipelineError getDJIError(int code) </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error ACTION_ACTUATOR_PAYLOAD_FAIL_TO_SEND_CMD_TO_PAYLOAD
            = new DJIWaypointV2Error("Uploaded payload actuator is invalid.", -13001)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_CONTROL_INTERRUPT_RECOVER_INVALID
            = new DJIWaypointV2Error("Invalid  interrupt recover operation.", -4004)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_CONTROL_MISSION_ALREADY_PAUSED
            = new DJIWaypointV2Error("The mission is already paused.", -4009)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_CONTROL_NO_RUNNING_MISSION_FOR_RESUME
            = new DJIWaypointV2Error("The mission cannot resume because it is not running.", -4010)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_CONTROL_NOT_SUPPORT_INTERRUPT_RESUME
            = new DJIWaypointV2Error("The mission cannot be interrupted or recovered now.", -4014)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_CONTROL_NOT_SUPPORT_PAUSE_RESUME
            = new DJIWaypointV2Error("The mission cannot be paused or resumed now.", -4013)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_CONTROL_PAUSE_RESUME_INVALID
            = new DJIWaypointV2Error("Invalid pause resume operation.", -4003)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_CONTROL_START_STOP_INVALID
            = new DJIWaypointV2Error("The aircraft start waypoint is too far away from the stop waypoint.", -4002)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_END_INDEX_INVALID
            = new DJIWaypointV2Error("Last waypoint index is invalid.", -2003)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_ACTION_TRIGGER_NOT_MATCH_ACTUATOR
            = new DJIWaypointV2Error("The action actuator and the trigger type do not match.", -12)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_CHECK_PHOTO_STORAGE_PACK_ERROR
            = new DJIWaypointV2Error("Check photo storage pack error.", -10)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_COMMAND_CANNOT_EXECUTE
            = new DJIWaypointV2Error("Command cannot execute.", -1)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_COMMAND_EXECUTION_FAILED
            = new DJIWaypointV2Error("Command execution failed.", -2)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_COMMON_TIMEOUT
            = new DJIWaypointV2Error("Common timeout.", -4)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_INDEX_INVALID
            = new DJIWaypointV2Error("Invalid waypoint index, please check your waypoint index with waypoint count.", -2011)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_INTERRUPT_REASON_AVOID_RTK_UNHEALTHY
            = new DJIWaypointV2Error("Waypoint mission was interrupted due to weak RTK signal.", -16)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_INVALID_INPUT_DATA_FC_LENGTH
            = new DJIWaypointV2Error("Data transmission does not match protocols.", -1001)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_INVALID_INPUT_DATA_FLOAT_NUMBER
            = new DJIWaypointV2Error(" Invalid floating number.", -1002)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_INVALID_PARAMETERS
            = new DJIWaypointV2Error("Invalid parameters.", -3)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_OPERATION_CANCEL_BY_USER
            = new DJIWaypointV2Error("Operation cancel by user.", -7)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_PRODUCT_CONNECT_FAILED
            = new DJIWaypointV2Error("Product connection failed.", -5)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_SDR_LINK_RESERVE_FAILED_CAUSE_MOTOR_ON
            = new DJIWaypointV2Error("SDR link reserve failed because motor is on.", -11)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_SDR_RESERVE_FAILED
            = new DJIWaypointV2Error("SDR reserve failed.", -9)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_START_INDEX_NOT_IN_END_OF_LAST_UPLOAD
            = new DJIWaypointV2Error("The upload waypoint start index isn't in the given range.", -2013)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_SYSTEM_BUSY
            = new DJIWaypointV2Error("System busy.", -6)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_TRAJECTORY_REPLAY_GIMBAL_ATTI_ERROR
            = new DJIWaypointV2Error(" The trajectory replay's gimbal attitude has error.", -102)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_TRAJECTORY_REPLAY_INVALID_LOCATION
            = new DJIWaypointV2Error("The trajectory replay's location is invalid.", -100)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_TRAJECTORY_REPLAY_NO_WAYPOINT_TO_REMOVE
            = new DJIWaypointV2Error("The trajectory replay has no waypoint to remove.", -101)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error MISSION_WAYPOINT_UPLOAD_MEDIA_FILE_FAILED
            = new DJIWaypointV2Error("Upload media file failed.", -8)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error RECOVER_NO_CURRENT_PROJECTION_POINT
            = new DJIWaypointV2Error("No recorded waypoint for recovery currently.", -4016)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error RECOVER_NO_NEXT_PROJECTION_POINT
            = new DJIWaypointV2Error("No recorded waypoint for next waypoint recovery.", -4017)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error UPLOAD_ACTION_ACTUATOR_SPRAY_EXTERNAL_SPRAY_MODE_INVALID
            = new DJIWaypointV2Error("Uploaded spray actuator is invalid.", -10001)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error UPLOAD_ACTION_ACTUATOR_SPRAY_FLOW_SPEED_INVALID
            = new DJIWaypointV2Error("Uploaded spray actuator is invalid.", -10002)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error UPLOAD_ACTION_ACTUATOR_SPRAY_FLOW_SPEED_PRE_MU_INVALID
            = new DJIWaypointV2Error("Uploaded spray actuator is invalid.", -10003)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error UPLOAD_ACTION_TRIGGER_REACH_AUTO_TERMINATE_INVALID
            = new DJIWaypointV2Error("Uploaded reach trigger invalid.", -8004)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error UPLOAD_ACTION_TRIGGER_REACH_END_INDEX_LESS_START_INDEX
            = new DJIWaypointV2Error("Uploaded reach trigger invalid.", -8002)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.error.DJIWaypointV2Error.</span><span class="interface-name">DJIWaypointV2Error</span></td><td width=15%><span class="source-code">static DJIWaypointV2Error UPLOAD_ACTION_TRIGGER_REACH_INTERVAL_COUNT_INVALID
            = new DJIWaypointV2Error("Uploaded reach trigger invalid.", -8003)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.sdkmanager.LDMModuleType.</span><span class="interface-name">FIRMWARE_UPGRADE</span></td><td width=15%><span class="source-code">    FIRMWARE_UPGRADE</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.sdkmanager.LDMModuleType.</span><span class="interface-name">LIVE_STREAMING</span></td><td width=15%><span class="source-code">    LIVE_STREAMING</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.media.</span><span class="interface-name">MediaFileInfo</span></td><td width=15%><span class="source-code">class MediaFileInfo implements Serializable </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.media.MediaFileInfo.</span><span class="interface-name">getFileSize</span></td><td width=15%><span class="source-code">long getFileSize() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.media.MediaFileInfo.</span><span class="interface-name">getIndex</span></td><td width=15%><span class="source-code">int getIndex() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.media.MediaFileInfo.</span><span class="interface-name">getMediaType</span></td><td width=15%><span class="source-code">MediaFile.MediaType getMediaType() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.media.MediaFileInfo.</span><span class="interface-name">getStreamSourceCamera</span></td><td width=15%><span class="source-code">CameraVideoStreamSource getStreamSourceCamera() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.media.MediaFileInfo.</span><span class="interface-name">getTimeCreated</span></td><td width=15%><span class="source-code">long getTimeCreated() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.mission.timeline.TimelineElement.</span><span class="interface-name">getDelayTime</span></td><td width=15%><span class="source-code">long getDelayTime() </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.mission.timeline.TimelineElement.</span><span class="interface-name">setDelayTime</span></td><td width=15%><span class="source-code">void setDelayTime(long delayTime)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.</span><span class="interface-name">Pipeline</span></td><td width=15%><span class="source-code">interface Pipeline </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.</span><span class="interface-name">PipelineDeviceType</span></td><td width=15%><span class="source-code">enum PipelineDeviceType </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.PipelineDeviceType.</span><span class="interface-name">ON_BOARD</span></td><td width=15%><span class="source-code">    ON_BOARD(3)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.PipelineDeviceType.</span><span class="interface-name">PAYLOAD</span></td><td width=15%><span class="source-code">    PAYLOAD(2)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.PipelineDeviceType.</span><span class="interface-name">UNKNOWN</span></td><td width=15%><span class="source-code">    UNKNOWN(0xff)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.</span><span class="interface-name">TransmissionControlType</span></td><td width=15%><span class="source-code">enum TransmissionControlType </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.TransmissionControlType.</span><span class="interface-name">STABLE</span></td><td width=15%><span class="source-code">    STABLE(0)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.TransmissionControlType.</span><span class="interface-name">PUSH</span></td><td width=15%><span class="source-code">    PUSH(1)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.Pipeline.</span><span class="interface-name">getId</span></td><td width=15%><span class="source-code">    int getId()</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.Pipeline.</span><span class="interface-name">getDeviceType</span></td><td width=15%><span class="source-code">    PipelineDeviceType getDeviceType()</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.Pipeline.</span><span class="interface-name">readData</span></td><td width=15%><span class="source-code">    int readData(byte[] buff, int offset, int length)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.Pipeline.</span><span class="interface-name">getType</span></td><td width=15%><span class="source-code">    TransmissionControlType getType()</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.Pipeline.</span><span class="interface-name">writeData</span></td><td width=15%><span class="source-code">    int writeData(byte[] data, int offset, int length)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.</span><span class="interface-name">Pipelines</span></td><td width=15%><span class="source-code">interface Pipelines </span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.Pipelines.</span><span class="interface-name">connect</span></td><td width=15%><span class="source-code">    void connect(int id, @NonNull TransmissionControlType transmissionType, @Nullable CommonCallbacks.CompletionCallback&lt;PipelineError&gt; callback)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.Pipelines.</span><span class="interface-name">disconnect</span></td><td width=15%><span class="source-code">    void disconnect(int id, @Nullable CommonCallbacks.CompletionCallback&lt;PipelineError&gt; callback)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.mop.common.Pipelines.</span><span class="interface-name">getPipelines</span></td><td width=15%><span class="source-code">    Map&lt;Integer, Pipeline&gt; getPipelines()</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.mission.waypointv2.Action.InterruptRecoverActionType.</span><span class="interface-name">GoBackToNextPoint</span></td><td width=15%><span class="source-code">    GoBackToNextPoint(4)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.mission.waypoint.WaypointV2MissionOperator.</span><span class="interface-name">recoverMission</span></td><td width=15%><span class="source-code">    void recoverMission(@NonNull InterruptRecoverActionType type, @Nullable CompletionCallback&lt;DJIWaypointV2Error&gt; callback)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.common.mission.waypointv2.Action.InterruptRecoverActionType.</span><span class="interface-name">GoBackToNextNextPoint</span></td><td width=15%><span class="source-code">    GoBackToNextNextPoint(5)</span></td></tr><tr valign="top"><td width=15%><span class="interface-parent">dji.sdk.mission.waypoint.WaypointV2MissionOperatorListener.</span><span class="interface-name">onExecutionStopped</span></td><td width=15%><span class="source-code">    void onExecutionStopped()</span></td></tr></table><p style="font-size:50%; color:white">50ef04d 9b743a5 50ef04d d554267 bff345b 77198ac feefeac 77198ac 9b743a5 b2ffaf1 a9e5a2e dd1f1a7 </p></body>
</html>

